﻿#ifndef RTMPBASE_H
#define RTMPBASE_H
#include <iostream> // c++系统文件

#include "librtmp/rtmp.h" // 其他库文件
namespace LQF {
enum RTMP_BASE_TYPE
{
    RTMP_BASE_TYPE_UNKNOW,
    RTMP_BASE_TYPE_PLAY,
    RTMP_BASE_TYPE_PUSH
};

class RTMPBase
{
public:
    virtual bool Connect(std::string url);
    bool Connect();
    void SetConnectUrl(std::string& url);
    void Disconnect();

    bool IsConnect();
    // 是否接收音频
    bool SetReceiveAudio(bool is_recv_audio);
    bool SetReceiveVideo(bool is_recv_video);

    RTMPBase();
    RTMPBase(RTMP_BASE_TYPE rtmp_obj_type);
    RTMPBase(RTMP_BASE_TYPE rtmp_obj_type, std::string& url);
    static uint32_t GetSampleRateByFreqIdx(uint8_t freq_idx);
    // 此构造函数默认构造player
    RTMPBase(std::string& url, bool is_recv_audio, bool is_recv_video);
    virtual ~RTMPBase();
private:
    bool initRtmp();
    RTMP_BASE_TYPE rtmp_obj_type_;

protected:
    RTMP* rtmp_;
    std::string url_;
    bool enable_video_;
    bool enable_audio_;
};

}

#endif












































